\section{Инсталација}
\subsection{Потребни   \textit{Lustre} пакети}

За инсталацију   \textit{Lustre} фајл система потребни су следећи пакети:

\begin{itemize}
\item  \textbf{\textit{Linux} кернел} закрпљен специфичним   \textit{Lustre}  закрпама (потребан само за MDS и OSS)

\item \textbf{   \textit{Lustre}  модули} компајлирани за  Linux kernel

\item   \textbf{ \textit{Lustre}  кориснички програми }потребни за конфигурацију

\item    \textbf{\textit{Lustre}  алати (\textit{e2fsck} and \textit{lfsck}) } који се користе за опоравак  фајл система, доступни у пакету под називом \textit{e2fsprogs}

\item \textbf{(Опционо) Мрежни кернел модули  и библиотеке }(на пример, кернел модули и библиотеке потребни за \textit{InfiniBand} мрежу)

\item  \textbf{\textit{e2fsprogs}}:   \textit{Lustre}  захтева сопствену верзију \textit{e2fsprogs}. \textit{e2fsprogs} мора се инсталирати само на чворовима које подижу \textit{ldiskfs} фајл системе, као што су OSS, MDS  и MGS чворови. Није потребно инсталирати их на клијентима.

\item \textbf{ \textit{\textit{Perl}}} - Разни кориснички програми за   \textit{Lustre} су писани у \textit{Perl-у}.

\end{itemize}


\subsection{Захтеви oкружења}

\begin{itemize}
\item Сви чворови   \textit{Lustre} фајл система треба да да имају \textit{remote shell} приступ. Иако није стриктно потребно за покретање система, препоручује се да сви чворови имају овакав приступ, због олакшавања конфигурације \textit{Lustre-а} и скрипти за праћење рада система. \textit{Parallel Distributed SHell (\gls{PDSH})} се препоручује, али и \textit{Secure SHell (SSH)} је прихватљив.

\item Обезбедити синхронизацију сатова. Lustre користи сатове за timestamps. Уколико сатови нису синхронизовани, доћиће до проблема код праћења рада система. Биће отежано отклањање грешака  и корелисање дневника. Препоручује се  \textit{Network Time Protocol (\gls{NTP})}.

\item Користити јединствени приступ фајловима на свим кластер чворовима. Користити исти користички ID (UID) и групни ID (GID). 

\item Искључити  \textit{Security-Enhanced Linux (\gls{SELinux})} на серверима и клијентима.   \textit{Lustre}  не подржава SELinux. Зато је потребно искључити \textit{SELinux} на свим   \textit{Lustre} чворовима, као и остале безбедносне екстензије, на пример \textit{Novell AppArmor} и \textit{network packet filtering tools (iptables)}.
\end{itemize}

\subsection{Захтеви у вези са меморијом} 

\subsubsection{Захтеви у вези са меморијом за клијенте}

Препоручљиво је да клијенти имају најмање 2 GB RAM.

\subsubsection{Захтеви у вези меморије за MDS}

Захтеви меморије за MDS зависе од следећих фактора:

\begin{itemize}

\item Броја клијента

\item Величине директоријума

\item Обима оптерећења
\end{itemize}

Количина меморије за MDS је функција броја клијената  на систему и броја фајлова које користе приликом покретања операција. То је пре свега, број закључавања клијента у једном временском тренутку. Стандардни максимум броја закључавања по чвору је 100*(број језгара), а интерактивни клијенти могу да држе више од 10000 закључавања у тренутку. За MDS, ово значи приближно 2 KB по фајлу.
Стандардно је 400 MB за  фајл систем дневника и додатна употреба меморије за кеширање фајлова за велике радне скупове који се тренутно не користе од стране клијената. Имати постојање великих података у кешу  може побољшати metadata перформансе 10x или и више ако се упоређује са читањем са диска. Приближно 1.5 KB за фајл је потребно за чување фајла у кешу. 

На пример, за MDT на MDS са  1000 клијената, 16 интерактивних  чворовима и са 2  милиона радних скупова (од којих су 400000 у кешу), потребно је 4GB меморије(Листинг 1.1)

\begin{lstlisting}[style=nonumbers,frame=single, caption=Количина меморије за MDT]
File system journal = 400 MB
1000 * 4-core clients * 100 files/core * 2kB = 800 MB

16 interactive clients * 10,000 files * 2kB = 320 MB

1,600,000 file extra working set * 1.5kB/file = 2400 MB
\end{lstlisting}

Повећање меморије аутоматски значи и боље перформансе.

Ако постоје директоријуми који садрже милион или више фајлова, можда ће бити потребно значајно  више меморије. На пример, у окружењу где клијенти насумично приступају једном од 10 милиона фајлова, постоји и додатна меморија за кеш.

\subsubsection{Захтеви у вези са меморијом за OSS}

 
Приликом планирања хардвера за OSS чвор, треба размотрити употребу меморије у   \textit{Lustre} систему (нпр. дневник, сервисне нити, фајл систем метаподатака, итд.). Такође, треба размислити колико је битно да OSS  кешира податке.

 
\begin{itemize}
\item \textbf{Величина дневника} - Стандардно, сваки   \textit{Lustre} \textit{ldiskfs} фајл систем има 400 MB за дневник. Ово може бити једнако количини меморије на  OSS чвору по једном фајл систему.

\item \textbf{Сервисне нити} - Нити на OSS чвору алоцирају око 1 MB за улазно/излазни бафер за сваку OST сервисну нит, тако да ове бафере није потребно алоцирати за сваки улазно/излазни захтев.

\item \textbf{Метаподаци фајл система} - Разумна количина меморије би требало да буде доступна за фајл систем метаподатака. Уколико је меморија доступна, онда се улазно/излазне операције на диску одвијају брже.

\item \textbf{Мрежни транспорт} - Уколико се користи  TCP или неки други протокол, треба да се има у виду меморија за бафере за слање/пријем.

\item \textbf{Конфигурација у случају отказа} - Ако се OSS чвор користи за \textit{failover} са другог чвора, онда RAM меморија за сваки дневник треба бити дуплирана тако да сервер за резервне копије може да реши проблем уколико матични сервер откаже.

\item \textbf{OSS читање кеша} - омогућава само читање кешираних података на OSS, користећи регуларану \textit{Linux} кеш страну за чување података. Исто као кеширање са регуларног фајл система на \textit{Linux} оперативном систему, OSS чита кеш користећи што више физичке меморије.
\end{itemize}

\subsubsection{Израчунавање количине меморије за  OSS }

Минимална препоручена количина RAM меморије OSS-а са 2 OST-а је 4 GB(Листинг 1.2).


\begin{lstlisting}[style=nonumbers,frame=single, caption=Препоручена количина RAM меморије]
1.5 MB per OST IO thread * 512 threads = 768 MB

e1000 RX descriptors, RxDescriptors=4096 for 9000 byte MTU = 128 MB

Operating system overhead = 512 MB

400 MB journal size * 2 OST devices = 800 MB

600 MB file system metadata cache * 2 OSTs = 1200 MB
\end{lstlisting}

1700 MB је за алокацију бафера и додатна 2GB за минималан фајл систем и кернел. Значи за стандардну конфигурацију минимум  меморије је 4 GB за сваки OSS чвор са 2 OST. Иако то није стриктно речено додавањем више меморије на OSS долази до побољшања перформансе читања мањих често посећиваних фајлова. 
За \textit{failover} конфигурацију, минимална количина RAM меморије је 6 GB. За 4 OST-а на сваком OSS-у, у \textit{failover} конфигурацији потребно је 10GB.
